package com.lanou3g.hw0412;

/**
 * Created by dllo on 18/4/12.
 */
public class OpPower extends Operator {
    //递归(非常简单的了解一下即可)
    // 在一个方法中,调用自己就叫做递归
    // 递归的好处: 当我们把条件想清楚之后
    //            不需要额外的编程思想,直接翻译成代码
    //            所有的递归,都可以用迭代(for循环)来实现
    //            并且普通递归效率低下
    // return num1*compute(num1,num2 - 1);

    // return Math.pow(num1,num2)系统自带

    // 2^3
    // =>2*4=8
    // 值1(2,2)=2*2=4
    // 值2(2,1)=2
    // 值3(2,0)=1
    @Override
    public Integer compute(int num1, int num2) {
        if (num2 == 0) {
            return 1;
        }
        // 任何数的0次幂都为1
        int num = 1;
        for (int i = 1; i <= num2; i++) {
            num = num1 * num;
        }
        return num;
    }
}
